// 放置全局指令
import Vue from 'vue'
import store from '@/store'

// 注册全局自定义指令
// Vue.directive('指令的名字', { 配置选项 })
Vue.directive('access', {
  // 组件初始化过程中，会执行一次
  // 在 bind 函数里面，拿不到父元素的 dom
  bind(el, binding) {

  },
  // 指令等于号后面绑定的数据发生变化时，会执行
  update(el, binding) {

  },
  // 组件初始化过程中，并且绑定了该指令的 dom 元素被挂载到父元素身上时，会执行一次
  // 在 inserted 函数里面，能够拿到父元素的 dom
  inserted(el, binding) {
    // el：绑定了自定义指令的元素的 dom
    // binding：是一个对象，里面有一些自定义指令相关的信息，binding.value 自定义指令等于号后面表达式的值
    // console.log(el)
    // console.log(binding)

    // 获取用户的按钮权限数据
    const points = store.state.user.userInfo.roles.points
    // binding.value：按钮权限码值
    if (!points.includes(binding.value)) {
      // 隐藏按钮的逻辑
      // el.style.display = 'none'
      el.parentNode.removeChild(el)
    }
  }
})
